package com.sinosoft.dsp.persistence.businessconcept.facade;

import java.util.Calendar;

import com.sinosoft.builder.templates.concept.LanguageKind;
import com.sinosoft.builder.templates.concept.NamingElement;
import com.sinosoft.builder.templates.concept.NamingElementStatus;
import com.sinosoft.dsp.system.utils.DateUtils;

/**
 * 命名元素门面类<br>
 * 暴露出用户可以编辑的对象
 * 
 * @author 潘巍（PeterPan）
 * @since 2011-5-21 下午04:55:46
 * 
 */
public class NamingElementFacade {

	private NamingElement ne;

	public NamingElement getNamingElement() {
		return ne;
	}

	public NamingElementFacade(String fullName) {
		this.ne = new NamingElement();
		this.ne.setChangedTime(DateUtils.getRecentlyXMLCalendar());
		setFullName(fullName);
	}

	public NamingElementFacade(NamingElement ne) {
		this.ne = ne;
	}

	// ID
	public String getId() {
		return ne.getId();
	}

	// 状态
	public String getStatus() {
		if (ne.getStatus() == null) {
			ne.setStatus(NamingElementStatus.CREATION);
		}
		return ne.getStatus().value();
	}

	// 修订时间
	public Calendar getChangedTime() {
		if (ne.getChangedTime() == null) {
			return null;
		}
		return ne.getChangedTime().toGregorianCalendar();
	}

	// 语言种类
	public LanguageKind getLanguageKind() {
		return ne.getLanguageKind();
	}

	public void setLanguageKind(LanguageKind value) {
		ne.setLanguageKind(value);
	}

	// 拼音简称
	public String getAbbreviationSpellingCn() {
		return ne.getAbbreviationSpellingCn();
	}

	public void setAbbreviationSpellingCn(String value) {
		ne.setAbbreviationSpellingCn(value);
	}

	// 拼音
	public String getFullSpellingCn() {
		return ne.getFullSpellingCn();
	}

	// 描述
	public String getDescription() {
		return ne.getDescription();
	}

	public void setDescription(String value) {
		ne.setDescription(value);
	}

	// 简称
	public String getAbbreviationName() {
		return ne.getAbbreviationName();
	}

	public void setAbbreviationName(String value) {
		ne.setAbbreviationName(value);
	}

	// 全称
	public String getFullName() {
		return ne.getFullName();
	}

	public void setFullName(String value) {
		ne.setFullName(value);
		// TODO 设置拼音
		ne.setFullSpellingCn(value);
	}

	// 注册机构
	public String getRegOrganization() {
		return ne.getRegOrganization();
	}

	public void setRegOrganization(String value) {
		ne.setRegOrganization(value);
	}

	// 版本编号
	public String getVersion() {
		return ne.getVersion();
	}

	public void setVersion(String value) {
		ne.setVersion(value);
	}

	// 标准名称
	public String getStandard() {
		return ne.getStandard();
	}

	public void setStandard(String value) {
		ne.setStandard(value);
	}

}
